This invention relates generally to the field of data processing and, more particularly, to an adaptive power management system for a computing system such as a desktop, laptop or hand-held computer.
Recently there has been a strong industry push toward developing an instantly-available personal computer (IAPC). The goal is to have a high-performance, feature-rich PC that is power efficient when both active and idle, always connected even when xe2x80x9coff,xe2x80x9d and instantly available to users whenever needed. The IAPC could be a desktop computer located at home or at an office, a laptop computer or even a small, resource limited computer, known as a handheld personal computer (H/PCs).
The IAPC would have several advantages over conventional computers. For example, the IAPC will appear to be off in that there is no noise due to fans or disk drives, yet it can snap back to its fully ready state within seconds of the push of a button. Ideally, the IAPC will be able to respond to the phone ringing in time to fully service the call for voice, fax or answering machine applications. Other advantages will include keeping the PC completely connected to a network even when the PC is xe2x80x9coffxe2x80x9d. Thus, file sharing, print server and web server applications will be able to function even when the PC is xe2x80x9coffxe2x80x9d.
Several industry standards have been developed in quest of the IAPC. For example, the Advance Configuration and Power Interface (ACPI) provides a standard yet flexible interface between hardware and applications to communicate their power management scheme and introduce a new methodology to the scheme as well.
An IAPC will have a set of power states that vary from a fully on or working state to various power saving xe2x80x9csleepingxe2x80x9d system states. For example, ACPI defines a working state GO and five sleeping states designated as S1-S5.
More specifically, S1 is a low wake-up latency sleeping system power state of the computing system 100 where the processor 112 is halted and is no longer executing instructions. However, bits of volatile information within the processor 112 (processing context) and RAM 115 are maintained in the S1 power state. In transitioning from S1 to G0, processor 112 preferably restarts execution from the instruction where it halted.
The S2 power state is also a low wake-up latency sleeping system power state similar to S1, except processing context is lost. From this state, the processor typically restarts execution from a waking vector stored in a predetermined memory location.
The S3 power state, also referred to as xe2x80x9cSuspend to RAMxe2x80x9d, is a low wake-up latency sleeping system power state where all system context is lost except for system memory. All bits of volatile information within each of the devices (device context) are lost in this state. In this transition, the processor 112 preferably restarts execution from a waking vector stored similar to waking from the S2 state. The S3 power state is ideal for the IAPC in that in this state over 80% of the PC""s power is shut off.
The S4 power state is called a system hardware context lost power state of the computing system 100 where all system context, device context, processor context, and dynamic memory, such as RAM 115, is lost. The S5 state is similar except that the IAPC is in a xe2x80x9csoft offxe2x80x9d state and requires a complete boot when awakened.
Unfortunately, due to limitations of conventional computing systems the goal of an instantly available PC is difficult to achieve. For example, a PC put to sleep in the S3 state may require up to 12 seconds to become available to the user, which is unacceptable.
For the reasons stated above, and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for a system that addresses these short comings. There is a need for a power management system that helps achieve the goals of the instantly available PC.
As explained in detail below, the invention is directed to a software application executing on a computing system. The software application monitors a user""s behavior and adapts the power management policies to the user""s preferences in an automated manner. The software application records a time of day whenever the computing system transitions from a current power state to a new power state as a result of an action initiated by a user, such as when the user activates the computing system. The software application includes a pattern-detection software module to detect a usage pattern within the recorded times and predicts when the user is likely to activate the computing system. Based on this prediction, the software application automatically transitions the computing system to a higher power state prior to the predicted startup time. As a result, the invention facilitates the xe2x80x9cinstantxe2x80x9d availability of the computing system when accessed by the user.